#include "cputest.h"

TEST(test12, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test13, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test14, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"bsf %%edx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15a, \
	"movl $0, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15b, \
	"movl $1, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test16, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test17, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test18, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test19, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test20, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test21, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test22, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test23, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test24, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test25, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test26, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"paddb %%mm0, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test30, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test31, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test32, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test33, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test34, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test35, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test36, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test40, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pextrw $0, %%mm1, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test41, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"pextrw $0, %%mm2, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test42, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"pextrw $0, %%mm3, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test43, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"pextrw $0, %%mm4, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test44, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"pextrw $0, %%mm5, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test45, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"pextrw $0, %%mm6, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test46, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"pextrw $0, %%mm7, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

test12: 4.041333
test13: 6.162284
test14: 8.162377
test15a: 7.162038
test15b: 5.042725
test16: 15.119706
test17: 14.687926
test18: 16.119009
test19: 11.783427
test20: 6.041382
test21: 6.041539
test22: 6.162720
test23: 8.164262
test24: 10.283320
test25: 12.368958
test26: 14.327373
test30: 6.162726
test31: 6.161727
test32: 6.163278
test33: 8.165686
test34: 12.537326
test35: 13.502835
test36: 16.627105
test40: 18.625058
test41: 24.907130
test42: 31.318825
test43: 37.581090
test44: 43.944999
test45: 50.222276
test46: 56.618929
